#ifndef _DOUBLE_LINKED_LIST_H
#define _DOUBLE_LINKED_LIST_H
struct double_linked_list{
    struct element * head;
    struct element * tail;

};
struct double_linked_list * create_double_linked_list(struct element * elem);
void append_tail_double_linked_list(struct double_linked_list * lst,struct element * elem);
void append_head_double_linked_list(struct double_linked_list * lst,struct element * elem);
void print_list(struct double_linked_list * lst);
void insert_double_linked_list(struct double_linked_list * lst,int index,struct element * elem);
int search_data(struct double_linked_list * lst,char * data);
char * search_index(struct double_linked_list * lst,int index);
int remove_head(struct double_linked_list * lst);
int remove_tail(struct double_linked_list * lst);
int remove_data(struct double_linked_list * lst,char * data);
int remove_index(struct double_linked_list * lst,int index);
int delete_DLL(struct double_linked_list * lst);
#endif